properties:
  logLevel:
    description: |
      Уровень логирования Deckhouse.
  bundle:
    description: |
      [Набор модулей](../../#наборы-модулей) Deckhouse. Определяет включенные по умолчанию модули:
      - `Default` — рекомендованный набор модулей для работы кластера: мониторинга, контроля авторизации, организации работы сети и других потребностей.
      - `Managed` — поставка для managed-кластеров от облачных провайдеров (например, Google Kubernetes Engine).
      - `Minimal` — минимально возможная поставка, которая включает единственный модуль (этот). **Обратите внимание,** что в набор модулей `Minimal` не включен ряд базовых модулей (например, модуль работы с CNI). Deckhouse с набором модулей `Minimal` без включения базовых модулей сможет работать только в уже развернутом кластере.
  releaseChannel:
    description: |
      Желаемый канал обновлений Deckhouse ([переключение](https://deckhouse.ru/documentation/v1/deckhouse-faq.html#что-происходит-при-смене-канала-обновлений) на него произойдет при появлении такой возможности).

      Порядок возрастания стабильности канала обновлений (от **наименее** стабильного к **наиболее** стабильному): `Alpha`, `Beta`, `EarlyAccess`, `Stable`, `RockSolid`.
  update:
    description: Настройки режима и окон обновления Deckhouse.
    properties:
      mode:
        description: |
          Режим обновления минорных версий Deckhouse (обновление релиза). **Не влияет на обновление patch-версий (patch-релизов).**
          - `Auto` (автоматический) — все обновления применяются автоматически.

            Обновления минорной версии Deckhouse (обновление релиза, например, с `v1.26.*` на `v1.27.*`) применяются с учетом заданных окон обновлений либо, если окна обновлений не заданы, по мере появления обновлений на соответствующем канале обновлений.
          - `Manual` (ручной) — для обновления минорной версии Deckhouse в ручном режиме (обновление релиза, например, с `v1.26.*` на `v1.27.*`) необходимо подтверждение.

            Для подтверждения обновления в соответствующем [custom resource `DeckhouseRelease`](https://deckhouse.ru/documentation/v1/modules/002-deckhouse/cr.html) необходимо установить поле `approved` в `true`.
      disruptionApprovalMode:
        description: |
          Режим обновления версий Deckhouse, имеющих disruptions (потенциально опасные изменения):
          - `Auto` (автоматический) — обновления применяются автоматически.
          - `Manual` (ручной) — для обновления требуется ручное подтверждение (установка аннотации `release.deckhouse.io/disruption-approved=true`).
      windows:
        description: |
          Список окон обновлений в течение суток.
        items:
          properties:
            from:
              description: |
                Время начала окна обновления (в часовом поясе UTC).

                Должно быть меньше времени окончания окна обновления.
            to:
              description: |
                Время окончания окна обновления (в часовом поясе UTC).

                Должно быть больше времени начала окна обновления.
            days:
              description: Дни недели, в которые применяется окно обновлений.
              items:
                description: День недели.
      notification:
        type: object
        description: |
          Настройка оповещений о запланированном обновлении Deckhouse.

          Имеет эффект **только** при установленном [автоматическом режиме](#parameters-update-mode) обновлений и **только** при смене минорных версий Deckhouse (при изменении patch-версий настройки параметра `notifications` игнорируются).
        properties:
          webhook:
            description: |
              URL-адрес webhook'а.

              Вызов webhook'а произойдет после появления новой минорной версии Deckhouse на используемом канале обновлений, но до момента ее применения в кластере.

              > Используйте параметр [minimalNotificationTime](#parameters-update-notification-minimalnotificationtime) при необходимости установить минимальное время, которое должно пройти перед обновлением с момента появления новой минорной версии Deckhouse на используемом канале обновлений.

              На адрес webhook'а выполняется POST-запрос с `Content-Type: application/json`. Пример содержания запроса:

              ```json
              {
                "version": "1.36",
                "requirements":  {"k8s": "1.20.0"},
                "changelogLink": "https://github.com/deckhouse/deckhouse/changelog/1.36.md",
                "applyTime": "2023-01-01T14:30:00Z00:00",
                "message": "New Deckhouse Release 1.36 is available. Release will be applied at: Friday, 01-Jan-23 14:30:00 UTC"
              }
              ```

              Описание полей POST-запроса:
              - `version` — строка, номер минорной версии;
              - `requirements` — объект, требования к версии;
              - `changelogLink` — строка, ссылка на список изменений (changelog) минорной версии;
              - `applyTime` — строка, дата и время запланированного обновления (с учетом установленных окон обновлений) в формате `RFC3339`;
              - `message` — строка, текстовое сообщение о доступности новой минорной версии и запланированном времени обновления.
          tlsSkipVerify:
            description: Пропустить валидацию TLS-сертификата при запросе webhook.
          minimalNotificationTime:
            description: |
              Минимальное время, которое должно пройти перед обновлением с момента появления новой минорной версии Deckhouse на используемом канале обновлений.

              Задается в виде строки с указанием часов и минут: 30m, 1h, 2h30m, 24h.

              Механизм обновления гарантирует, что Deckhouse не обновится, пока не пройдет указанный период времени.

              При использовании окон обновлений обновление Deckhouse произойдет в ближайшее возможное окно обновлений, но не ранее чем истечет указанное в `minimalNotificationTime` время.
          auth:
            description: |
              Структура, описывающая способ авторизации на webhook.

              Если не указано, авторизация не используется.
            properties:
              basic:
                type: object
                description: Basic-аутентификация на webhook.
                properties:
                  username:
                    type: string
                    description: |
                      Имя пользователя для авторизации на webhook.

                      Имя и пароль пользователя будут в заголовке `Authorization` в формате `Basic <base64(username:password)>`.
                  password:
                    type: string
                    description: |
                      Пароль для авторизации на webhook.

                      Имя и пароль пользователя будут в заголовке `Authorization` в формате `Basic <base64(username:password)>`.
              bearerToken:
                type: string
                description: |
                    Токен для авторизации на webhook.

                    Токен будет в заголовке `Authorization` в формате `Bearer <token>`.
  nodeSelector:
    description: |
      Структура, аналогичная `spec.nodeSelector` пода Kubernetes.

      Если ничего не указано или указано `false`, `nodeSelector` будет определяться [автоматически](https://deckhouse.ru/documentation/v1/#выделение-узлов-под-определенный-вид-нагрузки).

      **Внимание!** Deckhouse перестанет работать, если в `nodeSelector` указать несуществующий лейбл. Для восстановления работоспособности необходимо изменить значения на правильные в `ModuleConfig/deckhouse` и `deployment/deckhouse`.
  tolerations:
    description: |
      Структура, аналогичная `spec.tolerations` пода Kubernetes.

      Если ничего не указано или указано `false`, `tolerations` будет определяться [автоматически](https://deckhouse.ru/documentation/v1/#выделение-узлов-под-определенный-вид-нагрузки).

      **Внимание!** Deckhouse перестанет работать, если указать некорректные `tolerations`. Для восстановления работоспособности необходимо изменить значения на корректные в `ModuleConfig/deckhouse` и `deployment/deckhouse`.

  highAvailability:
    description: |
      Ручное управление режимом отказоустойчивости.

      По умолчанию режим отказоустойчивости определяется автоматически. [Подробнее](../../deckhouse-configure-global.html#параметры) про режим отказоустойчивости.
